// packageA/pages/attendanceReport/attendanceReport.js
const app = getApp();
import Toast from '../../../miniprogram_npm/@vant/weapp/toast/toast';
const util = require('../../../utils/util');
import CommonService from '../../../utils/service/commonService.js';

Page({
  /**
   * 页面的初始数据
   */
  data: {
    //开始日期
    startTime:'请选择开始日期', 
    //结束日期
    endTime:'请选择结束日期',
    //开始日期选择框
    showStartTime:false,
    //结束日期选择框
    showEndTime:false,
    //当前时间
    currentStart: new Date().getTime(),
    currentEnd: new Date().getTime(),    
    //最小时间
    minDate2:null,
    //最大时间
    maxDate1: new Date().getTime(),
    maxDate2: new Date().getTime(),
    //时间格式
    formatter (type, value) {
      if (type === 'year') {
        return `${value}年`
      } else if (type === 'month') {
        return `${value}月`
      } else if (type === 'day') {
        return `${value}日`
      }
      return value
    },
    //登录用户
    user: null,
    //项目选择框
    showProject:false,
    //项目选择数据
    projectList:[],
    //项目id
    projectId:null,
    //项目名称
    projectName:'请选择部门'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //当前登录用户
    this.setData({ 
      user: app.globalData.userInfo 
    })
  },

  //导出
  onDownload(){
    Toast.loading({
      duration: 0,
      forbidClick: true,
      message: '加载中...'
    });

    let startTime=this.data.startTime;
    let endTime=this.data.endTime;
    let goUrl=app.globalData.goUrl;   
    let urlstr = goUrl+'electronCard/clockRecordPivotTableExport?beginDate='+startTime+'&endDate='+endTime
    if (this.data.projectId){
      urlstr+='&depart='+this.data.projectId
    }
    if(startTime!='请选择开始日期' && endTime!='请选择结束日期'){
      let user=this.data.user;
      if (user.departObj[0].type == 1 && !this.data.projectId){
        Toast.fail('请选择项目');
        return;
      }
      wx.downloadFile({
        header: {
          'Content-Type': "application/json;charset=UTF-8",
          'Authorization': 'Bearer ' + app.globalData.loginToken,
        },
        url: urlstr,
        success: function (res) {
          if(res.statusCode==200){
            Toast.clear();
            const filePath = res.tempFilePath;
            wx.openDocument({
              filePath: filePath,
              showMenu:true,
              success: function (res) {
              },
              fail:function(){
                Toast.fail('操作失败');
              }
            })
          }else{
            Toast.fail('暂无可导出数据');
          }  
        },
        fail:function(){
          Toast.fail('操作失败');
        }
      })
       
    }else{
      Toast.fail('请选择日期');
    }  
  },

  //显示开始日期
  onShowStartTime(){
    this.setData({
			showStartTime: true
    })
  },

  //隐藏开始日期
  onCloseStartTime(){
    this.setData({
			showStartTime: false
    })
  },

  //确认开始日期
  onConfirmStartTime(e) {
    this.setData({
      currentStart: e.detail,
      minDate2:e.detail,
      startTime:util.timeFormatDay(e.detail)
    })
    this.onCloseStartTime();
  },

  //显示结束日期
  onShowEndTime(){
    this.setData({
			showEndTime: true
    })
  },

  //隐藏结束日期
  onCloseEndTime(){
    this.setData({
			showEndTime: false
    })
  },

  //确认结束日期
  onConfirmEndTime(e) {
    this.setData({
      currentEnd: e.detail,
      maxDate1:e.detail,
      endTime:util.timeFormatDay(e.detail)
    })
    this.onCloseEndTime();
  }, 
  
  //显示项目
  onShowProject(){
    this.setData({
			showProject: true
    })
    this.getProjectList();
  },

  //查询项目
  getProjectList(){
    this.setData({
      projectList: []
    })

    let param = {
      isAuth: true,
      className: 'depart',
      data: {
        searchAll: true,
        selectFields: ['id','name']
      }
    }

    //模糊查询
    if(this.data.valueSearchProject){
      param.data.name='%' + this.data.valueSearchProject + '%';
    }

    CommonService.goFindList(param).then(res=>{
      if(res.data.data && res.data.data.result && res.data.data.result.length){
        let result=res.data.data.result;
        let arr=[];

        result.forEach(item => {
          arr.push({
            text:item.name,
            id:item.id
          });
        });

        this.setData({
          projectList: arr
        })
      }
    }).catch((error) => {
    })
  },

  //隐藏项目
  onCloseProject(){
    this.setData({
      showProject: false,
      valueSearchProject:''
    })
  },

  //确认项目
  onConfirmProject(e){
    this.setData({
      projectId:e.detail.value.id,
      projectName:e.detail.value.text
    })
    this.onCloseProject();
  },

  //搜索项目
  onChangeProjectVal(e){
    this.setData({
      valueSearchProject: e.detail
    })
    this.getProjectList();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  }
})